#include "cpu/exec/template-start.h"

make_helper(concat(lods_, SUFFIX)) {
    REG(R_EAX) = MEM_R(REG(R_ESI));
    REG(R_ESI) += cpu.eflags.DF ? -DATA_BYTE : DATA_BYTE;
    print_asm(str(concat(lods_, SUFFIX)));
    return 1;
}
make_helper(concat(lodsb_, SUFFIX)) {
    reg_b(R_AL) = swaddr_read(REG(R_ESI), 1);
    REG(R_ESI) += cpu.eflags.DF ? -1 : 1;
    print_asm(str(concat(lodsb_, SUFFIX)));
    return 1;
}

#include "cpu/exec/template-end.h"